<template>
  <view class="authorization container">
    <button class="auth-btn" @click="weChatAuthorization">微信授权</button>
    <view class="auth-explain">
      第三方用户信息授权说明：
      您授权后，小程序开发者将收集您的微信昵称、头像为您提供相关服务，
      开发者严格按照"《小程序隐私保护指引》处理你的个人信息，如您发现开发者不当处理您的个人信息，可进行投诉。
    </view>
    <view class="end">
      祝您体验愉快！
    </view>
  </view>
</template>
<script setup lang="ts">
	import { setAuthorization } from "@/utils/auth"
	import { baseURL } from "@/api/request"
  const weChatAuthorization = () => {
    uni.login({ 
    	"provider": "weixin",
    	"onlyAuthorize": true, // 微信登录仅请求授权认证
    	success: async function(event){
    		const {code} = event
    		//客户端成功获取授权临时票据（code）,向业务服务器发起登录请求。
    		uni.request({
    		  // url: baseURL + '/ignore/user/login/login', //仅为示例，并非真实接口地址。
			  url: baseURL + '/ignore/user/login/login?code=' + code, // 通过URL参数传递code
			  // url: 'https://sxg123.cn/login/user?code=' + code, // 通过URL参数传递code
			  method: 'POST',
			  // data: { code},
    		  success: (res) => {
					//获得token完成登录
					const openId = res.data.data.openId;
					const userId = res.data.data.userId;
					uni.setStorageSync('openId', openId);
					uni.setStorageSync('userId', userId);
					setAuthorization(res.data.data as string)
					// 登录成功
					uni.getUserInfo({
					  provider: 'weixin',
					  success: function(info) {
						uni.setStorageSync('USER_INFO',JSON.stringify(info.userInfo))
						// 获取用户信息成功, info.authResult保存用户信息
					  }
					})
					// uni.navigateTo({
					//   url: '/pages/components/n-settlementCenter'
					// })
					uni.switchTab({
					  url: '/pages/components/n-shopCar'
					})
					
				},
				fail: function (err) {
					// 登录授权失败  
					// err.code是错误码
					uni.showToast({
						title: '授权失败!',
						icon: 'error',
						duration:1000,
						mask: true
					})
				}
			})
    	},
		fail:async function(event) {
			uni.showToast({
				title: '授权失败!',
				icon: 'error',
				duration:1000,
				mask: true
			})
		}
    });
  }
</script>
<style scoped lang="scss">
  .authorization {
    display: flex;
    flex-direction: column;
    align-items: center;
    .auth-btn {
      margin-top: 50rpx;
      margin-bottom: 50rpx;
      width: 90%!important;
      border-radius: 40rpx;
      background: $uni-primary;
      font-weight: 700;
      color: #fff;
      letter-spacing: 5px;
    }
    .auth-explain {
      padding: 0 40px;
      color: $uni-base-color;
    }
    .end {
      color: $uni-base-color;
    }
  }
</style>